import os

import pandas as pd


def get_path(excel_file_name: str) -> str:
    # 获取当前工作目录
    current_dir = os.getcwd()
    # 定义上一级目录的文件夹名称
    folder_name = 'data'
    # 构建上一级目录的文件夹路径
    parent_dir = os.path.dirname(current_dir)
    target_folder_path = os.path.join(parent_dir, folder_name)
    # 创建目标文件夹，如果不存在的话
    if not os.path.exists(target_folder_path):
        os.makedirs(target_folder_path)
    # 定义Excel文件名
    excel_file_name = excel_file_name
    # 完整的Excel文件路径
    excel_file_path = os.path.join(target_folder_path, excel_file_name)
    return excel_file_path


def make_excel(columns: list, name: str) -> str:
    """
    创建Excel文件
    :param columns:
    :param name:
    :return:    文件的绝对路径
    """

    # 使用列名创建一个空的DataFrame
    df = pd.DataFrame(columns=columns)
    path = get_path(excel_file_name=name)
    df.to_excel(path, index=False)
    return path


def add_data_to_excel(columns: list, values: list, path: str):
    """
    插入数据到excel
    :param columns: 列名
    :param values:  数据
    :param path:    文件保存路径
    :return:
    """
    # 　TODO
    df_exist = pd.read_excel(path)
    new_data = pd.DataFrame([values], columns=columns)
    df_contcat = pd.concat([df_exist, new_data], ignore_index=True)
    df_contcat.to_excel(path, index=False)



if __name__ == '__main__':
    flydata_columns = ['psi', 'pit', 'rol', 'v', 'h', 'v_gps', 'lat', 'lon',
                       'H_gps', 'Psi_gs', 'year', 'month', 'day', 'hour', 'minute', 'second',
                       'BY', 'v_east', 'v_north', 'v_up']
    # TODO设置文件存储名
    path = make_excel(columns=flydata_columns, name="fly_data.xlsx")
    test_list = list(range(len(flydata_columns)))
    for i in range(0, 10):
        add_data_to_excel(columns=flydata_columns, values=test_list, path=path)
